package xun.coco.mongo.pojo;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author wangxun
 */
@Data
@Document("user")
public class User {
    /**
     * 如果属性命名是: id | _id，注解可以省略
     * MongoDB 中，默认的主键类型是 ObjectId，对应 Java 中的类型是 String | ObjectId (是 Bson 包中的)
     * MongoDB - ObjectId("xxxxxxxxxxxxxxxxxxxx")
     * Java 对象 String 对象 - xxxxxxxxxxxxxxxxxxxx
     */
    @Id
    private String id;

    /**
     * 可以使用注解 @Field 描述属性，用于配置 Java 实体属性和 MongoDB 集合 Field 字段的映射关系
     */
    @Field(name = "name")
    private String name;

    @Field(name = "age")
    private Integer age;

    @Field(name = "height")
    private BigDecimal height;

    @Field(name = "birthday")
    private LocalDateTime birthday;

    @Field(name = "hobbies")
    private List<String> hobbies;
}
